home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / xlisp_21.zoo / xl-001.bug < prev    next >
Internet Message Format  |  1990-02-28  |  5KB

  1. From sce!mitel!uunet!cs.utexas.edu!tut.cis.ohio-state.edu!ucbvax!hplabs!hplabsz!mayer Thu Jun 22 07:40:45 EDT 1989
  2. Article: 118 of comp.lang.lisp.x
  3. Path: cognos!sce!mitel!uunet!cs.utexas.edu!tut.cis.ohio-state.edu!ucbvax!hplabs!hplabsz!mayer
  4. From: mayer@hplabsz.HPL.HP.COM (Niels Mayer)
  5. Newsgroups: comp.lang.lisp.x
  6. Subject: Re: XLISP 2.0 -- bug in stream implementation // XLISP internals Docs?
  7. Message-ID: <3478@hplabsz.HPL.HP.COM>
  8. Date: 14 Jun 89 05:10:28 GMT
  9. References: <3468@hplabsz.HPL.HP.COM>
  10. Reply-To: mayer@hplabs.hp.com (Niels Mayer)
  11. Organization: Hewlett-Packard Labs, Software Technology Lab, Palo Alto, CA.
  12. Lines: 41
  13. Summary:
  14. Expires:
  15. Sender:
  16. Followup-To:
  17.  
  18. In article <3468@hplabsz.HPL.HP.COM> mayer@hplabs.hp.com (Niels Mayer) writes:
  19. >It looks like garbage collection is trashing a pointer somewhere when using
  20. >make-string-input-stream running read-char on that stream. After doing a
  21. >bunch of read-chars on that stream, I get an "error: bad stream" message.
  22. >This happens more often right after you start up xlisp, and less frequently
  23. >upon subsequent garbage collections.
  24.  
  25. Someone inside HP kindly mailed me an archive of the last year of
  26. comp.lang.lisp.x, and inside that archive, I found the following fix:
  27.  
  28.      Note 58       two bugs with unnamed streams in xlisp 2.0
  29.      nikkie@dutesta.UUCP (Paul A.W. van Niekerk)   7:13 am  Dec 16, 1988
  30.      
  31.      I discovered two bugs in my copy of xlisp 2.0 concerning unnamed streams.
  32.      The bugs + fixes follow.
  33.      
  34.      1. Unnamed streams never survive a garbage collection.
  35.         Fix: in xldmem.c change in function mark the line:
  36.            if ((type = ntype(this)) == CONS) {
  37.         to
  38.            if ((type = ntype(this)) == CONS || type == USTREAM) {
  39.      
  40.      2. (format nil ...) does not protect the unnamed stream it creates, it will
  41.         vanish during a GC.
  42.         Fix: in xlfio.c add to function xformat the lines:
  43.            xlsave1(val);
  44.            ...
  45.            xlpop();
  46.      
  47.      Now USTREAMS seem to work fine.
  48.      Paul van Niekerk.
  49.      --
  50.      Paul A.W. van Niekerk                 |  All standard
  51.      Delft University of Technology        |  disclaimers apply ...
  52.  
  53. -------------------------------------------------------------------------------
  54.         Niels Mayer -- hplabs!mayer -- mayer@hplabs.hp.com
  55.           Human-Computer Interaction Department
  56.                Hewlett-Packard Laboratories
  57.                   Palo Alto, CA.
  58.                    *
  59.  
  60.  
  61. From sce!mitel!uunet!cs.utexas.edu!csd4.milw.wisc.edu!dogie.macc.wisc.edu!indri!nero!blake!uw-beaver!tektronix!tekcrl!tekgvs!toma Thu Jun 22 07:41:11 EDT 1989
  62. Article: 119 of comp.lang.lisp.x
  63. Path: cognos!sce!mitel!uunet!cs.utexas.edu!csd4.milw.wisc.edu!dogie.macc.wisc.edu!indri!nero!blake!uw-beaver!tektronix!tekcrl!tekgvs!toma
  64. From: toma@tekgvs.LABS.TEK.COM (Tom Almy)
  65. Newsgroups: comp.lang.lisp.x
  66. Subject: Re: XLISP 2.0 -- bug in stream implementation // XLISP internals Docs?
  67. Message-ID: <5353@tekgvs.LABS.TEK.COM>
  68. Date: 14 Jun 89 14:41:38 GMT
  69. References: <3468@hplabsz.HPL.HP.COM>
  70. Reply-To: toma@tekgvs.LABS.TEK.COM (Tom Almy)
  71. Organization: Tektronix, Inc., Beaverton,  OR.
  72. Lines: 39
  73.  
  74. In article <3468@hplabsz.HPL.HP.COM> mayer@hplabs.hp.com (Niels Mayer) writes:
  75. >It looks like garbage collection is trashing a pointer somewhere when using
  76. >make-string-input-stream running read-char on that stream. A[...]
  77.  
  78. >I'm going to try to track this down in the code, but I thought I'd tap your
  79. >collective wisdoms on this problem. Maybe someone's already fixed it?  [...]
  80.  
  81. Yes the fix has been posted.  An abridged copy is appended to this posting.
  82.  
  83. Tom Almy
  84. toma@tekgvs.labs.tek.com
  85. Standard Disclaimers Apply
  86.  
  87. ----------------------- OLD POSTING FOLLOWS --------------------------
  88.  
  89. From: nikkie@dutesta.UUCP (Paul A.W. van Niekerk)
  90. Newsgroups: comp.lang.lisp.x
  91. Subject: two bugs with unnamed streams in xlisp 2.0
  92. Date: 16 Dec 88 15:13:26 GMT
  93. Organization: DELFT UNIVERSITY OF TECHNOLOGY
  94.               Faculty of Electrical Engineering
  95.               Computer architecture and Digital Technique
  96.               Mekelweg 4   -   2628 CD  Delft
  97.  
  98. I discovered two bugs in my copy of xlisp 2.0 concerning unnamed streams.
  99. The bugs + fixes follow.
  100.  
  101. 1. Unnamed streams never survive a garbage collection. 
  102.    Fix: in xldmem.c change in function mark the line:
  103.     if ((type = ntype(this)) == CONS) {
  104.    to
  105.     if ((type = ntype(this)) == CONS || type == USTREAM) {
  106.  
  107. 2. (format nil ...) does not protect the unnamed stream it creates, it will
  108.    vanish during a GC.
  109.    Fix: in xlfio.c add to function xformat the lines:
  110.     xlsave1(val);
  111.     ...
  112.     xlpop();
  113.  
  114. NOTES: xlsave1(val) is being passed an uninitialized value! where do the 
  115.        above xlsave1/xlpop go? pop before return? 
  116.